package cn.sc;

import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;

/**
 * @ClassName SimpleCache
 * @Author 谢卓才
 * @Description 获取缓存提供了get和set方法，类似与集合的操作
 * @Date 2022/11/13 9:17
 */
public interface SimpleCache<V> {


    /**
     * 获取缓存
     * @param key
     * @return
     */
    V getCache(String key);

    /**
     * 获取所有缓存
     */
    public List<V> getCacheAll();

    /**
     * 通过key获取value,可以使用*
     */
    List<V> getCacheList(String key);

    /**
     * 添加进缓存
     */
    V addCache(String key,V value);

    /**
     * 添加进缓存
     */
    V addCache(String key,V value,long time);

    /**
     * 添加进缓存
     */
    V addCache(String key, V value, long time, TimeUnit unit);

    /**
     * 批量添加
     */
    void addCache(Map<String, V> come);

    /**
     * 删除缓存
     */
    Long deleteCache(String key);


    /**
     * 更新缓存
     */
    V updateCache(String key, V value);

    /**
     * 长度
     */
    Long cacheSize();

}
